<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Semantics (computer science)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Semantics_(computer_science)"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Semantics_computer_science rootpage-Semantics_computer_science skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Semantics (computer science)</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Not to be confused with <a href="Computational_semantics" title="Computational semantics">Computational semantics</a>.</div>
<style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1246091330">
/* start https://en.wikipedia.org/ */
.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */
.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}
/* end https://en.wikipedia.org/ */
</style><table class="sidebar nomobile nowraplinks" style="width:19.0em"><tbody><tr><th class="sidebar-title" style="background:#ccccff;border-bottom:#fafafa solid 1px;"><a href="Semantics" title="Semantics">Semantics</a></th></tr><tr><th class="sidebar-heading" style="background:#ddddff;font-size:105%;">
<div class="hlist"><ul><li><a href="Formal_semantics_(linguistics)" class="mw-redirect" title="Formal semantics (linguistics)">Linguistic</a></li><li><a href="Formal_semantics_(logic)" class="mw-redirect" title="Formal semantics (logic)">Logical</a></li></ul></div></th></tr><tr><td class="sidebar-content hlist" style="padding-top:0.15em;padding-bottom:0.6em;">
<table class="sidebar nomobile nowraplinks" style="background-color: transparent; color: var( --color-base, #202122 ); border-collapse:collapse; border-spacing:0px; border:none; width:100%; margin:0px; font-size:100%; clear:none; float:none"><tbody><tr><th class="sidebar-heading">
Subfields</th></tr><tr><td class="sidebar-content plainlist">
<div class="hlist">
<ul><li><a href="Computational_semantics" title="Computational semantics">Computational</a></li>
<li><a href="Lexical_semantics" title="Lexical semantics">Lexical</a>
<ul><li><a href="Lexis_(linguistics)" title="Lexis (linguistics)">Lexis</a></li>
<li><a href="Lexicology" title="Lexicology">Lexicology</a></li></ul></li>
<li><a href="Statistical_semantics" title="Statistical semantics">Statistical</a></li>
<li><a href="Structural_semantics" title="Structural semantics">Structural</a></li></ul>
</div></td>
</tr><tr><th class="sidebar-heading">
Topics</th></tr><tr><td class="sidebar-content plainlist">
<ul><li><a href="Semantic_analysis_(linguistics)" title="Semantic analysis (linguistics)">Analysis</a></li>
<li><a href="Compositionality" class="mw-redirect" title="Compositionality">Compositionality</a></li>
<li><a href="Context" title="Context">Context</a>
<ul><li><a href="Prototype_theory" title="Prototype theory">Prototype theory</a></li>
<li><a href="Force_dynamics" title="Force dynamics">Force dynamics</a></li></ul></li>
<li><a href="Semantic_feature" title="Semantic feature">Semantic feature</a></li>
<li><a href="Semantic_gap" title="Semantic gap">Semantic gap</a></li>
<li><a href="Theory_of_descriptions" title="Theory of descriptions">Theory of descriptions</a></li></ul></td>
</tr><tr><th class="sidebar-heading">
Analysis</th></tr><tr><td class="sidebar-content plainlist">
<div class="hlist">
<ul><li><a href="Latent_semantic_analysis" title="Latent semantic analysis">Latent</a></li>
<li><a href="Semantic_analysis_(computational)" title="Semantic analysis (computational)">Computational</a></li>
<li><a href="Semantic_analysis_(machine_learning)" title="Semantic analysis (machine learning)">Machine learning</a></li></ul>
</div></td>
</tr><tr><th class="sidebar-heading">
Applications</th></tr><tr><td class="sidebar-content plainlist">
<ul><li><a href="Semantic_desktop" title="Semantic desktop">Desktop</a></li>
<li><a href="Semantic_file_system" title="Semantic file system">File system</a></li>
<li><a href="Semantic_matching" title="Semantic matching">Matching</a></li>
<li><a href="Semantic_parsing" title="Semantic parsing">Parsing</a></li>
<li><a href="Semantic_query" title="Semantic query">Querying</a>
<ul><li><a href="Semantic_Web" title="Semantic Web">web</a></li>
<li><a href="Semantic_wiki" title="Semantic wiki">wiki</a></li></ul></li>
<li><a href="Semantic_similarity" title="Semantic similarity">Similarity</a></li></ul></td>
</tr></tbody></table></td>
</tr><tr><th class="sidebar-heading" style="background:#ddddff;font-size:105%;">
</th></tr><tr><td class="sidebar-content hlist" style="padding-top:0.15em;padding-bottom:0.6em;">
<table class="sidebar nomobile nowraplinks" style="background-color: transparent; color: var( --color-base, #202122 ); border-collapse:collapse; border-spacing:0px; border:none; width:100%; margin:0px; font-size:100%; clear:none; float:none"><tbody><tr><th class="sidebar-heading">
Types</th></tr><tr><td class="sidebar-content plainlist">
<div class="hlist">
<ul><li><a href="Action_semantics" title="Action semantics">Action</a></li>
<li><a href="Algebraic_semantics_(computer_science)" title="Algebraic semantics (computer science)">Algebraic</a></li>
<li><a href="Axiomatic_semantics" title="Axiomatic semantics">Axiomatic</a></li>
<li><a href="Categorical_logic" title="Categorical logic">Categorical</a></li>
<li><a href="Concurrency_semantics" title="Concurrency semantics">Concurrency</a></li>
<li><a href="Denotational_semantics" title="Denotational semantics">Denotational</a></li>
<li><a href="Game_semantics" title="Game semantics">Game</a></li>
<li><a href="Operational_semantics" title="Operational semantics">Operational</a></li>
<li><a href="Predicate_transformer_semantics" title="Predicate transformer semantics">Predicate transformational</a></li></ul>
</div></td>
</tr><tr><th class="sidebar-heading">
Theory</th></tr><tr><td class="sidebar-content plainlist">
<ul><li><a href="Abstract_interpretation" title="Abstract interpretation">Abstract interpretation</a></li>
<li><a href="Abstract_semantic_graph" title="Abstract semantic graph">Abstract semantic graph</a></li></ul></td>
</tr></tbody></table></td>
</tr><tr><td class="sidebar-below hlist" style="background:#ddddff">
<ul><li><a href="Language" title="Language">Language</a></li>
<li><a href="Linguistics" title="Linguistics">Linguistics</a></li></ul></td></tr><tr><td class="sidebar-navbar"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></td></tr></tbody></table>
<table class="sidebar sidebar-collapse nomobile nowraplinks hlist"><tbody><tr><td class="sidebar-pretitle">Part of <i>a series</i> on</td></tr><tr><th class="sidebar-title-with-pretitle"><a href="Formal_languages" class="mw-redirect" title="Formal languages">Formal languages</a></th></tr><tr><td class="sidebar-content" style="padding-top:0.2em;">
<div class="sidebar-list mw-collapsible"><div class="sidebar-list-title" style="background:#ddddff;text-align:center;;color: var(--color-base)"><div class="sidebar-list-title-c">Key concepts</div></div><div class="sidebar-list-content mw-collapsible-content">
<ul><li><a href="Formal_system" title="Formal system">Formal system</a></li>
<li><a href="Alphabet_(formal_languages)" title="Alphabet (formal languages)">Alphabet</a></li>
<li><a href="Syntax_(logic)" title="Syntax (logic)">Syntax</a></li>
<li><a href="Semantics_of_logic" title="Semantics of logic">Formal semantics</a></li>
<li><a href="Formal_grammar" title="Formal grammar">Formal grammar</a></li>
<li><a href="Formation_rule" title="Formation rule">Formation rule</a></li>
<li><a href="Well-formed_formula" title="Well-formed formula">Well-formed formula</a></li>
<li><a href="Automata_theory" title="Automata theory">Automata theory</a></li>
<li><a href="Regular_expression" title="Regular expression">Regular expression</a></li>
<li><a href="Production_(computer_science)" title="Production (computer science)">Production</a></li>
<li><a href="Ground_expression" title="Ground expression">Ground expression</a></li>
<li><a href="Atomic_formula" title="Atomic formula">Atomic formula</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-content" style="padding-top:0.2em;">
<div class="sidebar-list mw-collapsible mw-collapsed"><div class="sidebar-list-title" style="background:#ddddff;text-align:center;;color: var(--color-base)"><div class="sidebar-list-title-c">Applications</div></div><div class="sidebar-list-content mw-collapsible-content">
<ul><li><a href="Formal_methods" title="Formal methods">Formal methods</a></li>
<li><a href="Propositional_calculus" class="mw-redirect" title="Propositional calculus">Propositional calculus</a></li>
<li><a href="Predicate_logic" class="mw-redirect" title="Predicate logic">Predicate logic</a></li>
<li><a href="Mathematical_notation" title="Mathematical notation">Mathematical notation</a></li>
<li><a href="Natural_language_processing" title="Natural language processing">Natural language processing</a></li>
<li><a href="Programming_language_theory" title="Programming language theory">Programming language theory</a></li>
<li><a href="Mathematical_linguistics" title="Mathematical linguistics">Mathematical linguistics</a></li>
<li><a href="Computational_linguistics" title="Computational linguistics">Computational linguistics</a></li>
<li><a href="Syntax_analysis" class="mw-redirect" title="Syntax analysis">Syntax analysis</a></li>
<li><a href="Formal_verification" title="Formal verification">Formal verification</a></li>
<li><a href="Automated_theorem_proving" title="Automated theorem proving">Automated theorem proving</a></li></ul></div></div></td>
</tr><tr><td class="sidebar-navbar"></td></tr></tbody></table>
<p>In <a href="Programming_language_theory" title="Programming language theory">programming language theory</a>, <b>semantics</b> is the rigorous mathematical study of the meaning of <a href="Programming_language" title="Programming language">programming languages</a>.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> Semantics assigns <a href="Computation" title="Computation">computational</a> meaning to valid <a href="String_(computer_science)" title="String (computer science)">strings</a> in a <a href="Programming_language_syntax" class="mw-redirect" title="Programming language syntax">programming language syntax</a>. It is closely related to, and often crosses over with, the <a href="Semantics_of_logic" title="Semantics of logic">semantics of mathematical proofs</a>.
</p><p><b>Semantics</b> describes the processes a computer follows when <a href="Execution_(computing)" title="Execution (computing)">executing</a> a program in that specific language. This can be done by describing the relationship between the input and output of a program, or giving an explanation of how the program will be executed on a certain <a href="Computer_platform" class="mw-redirect" title="Computer platform">platform</a>, thereby creating a <a href="Model_of_computation" title="Model of computation">model of computation</a>.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>In 1967, <a href="Robert_W._Floyd" title="Robert W. Floyd">Robert W. Floyd</a> published the paper <i>Assigning meanings to programs</i>; his chief aim was "a rigorous standard for proofs about computer programs, including <a href="Formal_verification" title="Formal verification">proofs of correctness</a>, equivalence, and termination".<sup id="cite_ref-floyd_2-0" class="reference"><a href="#cite_note-floyd-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> Floyd further wrote:<sup id="cite_ref-floyd_2-1" class="reference"><a href="#cite_note-floyd-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<blockquote>
<p>A semantic definition of a programming language, in our approach, is founded on a <a href="Syntax_(programming_languages)" title="Syntax (programming languages)">syntactic</a> definition. It must specify which of the phrases in a syntactically correct program represent <a href="Command_(computing)" title="Command (computing)">commands</a>, and what <a href="Conditional_(computer_programming)" title="Conditional (computer programming)">conditions</a> must be imposed on an interpretation in the neighborhood of each command.
</p>
</blockquote>
<p>In 1969, <a href="Tony_Hoare" title="Tony Hoare">Tony Hoare</a> published a paper on <a href="Hoare_logic" title="Hoare logic">Hoare logic</a> seeded by Floyd's ideas, now sometimes collectively called <i><a href="Axiomatic_semantics" title="Axiomatic semantics">axiomatic semantics</a></i>.<sup id="cite_ref-hoare_4-0" class="reference"><a href="#cite_note-hoare-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-winskel_5-0" class="reference"><a href="#cite_note-winskel-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p><p>In the 1970s, the terms <i><a href="Operational_semantics" title="Operational semantics">operational semantics</a></i> and <i><a href="Denotational_semantics" title="Denotational semantics">denotational semantics</a></i> emerged.<sup id="cite_ref-winskel_5-1" class="reference"><a href="#cite_note-winskel-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2></div>
<p>The field of formal semantics encompasses all of the following:
</p>
<ul><li>The definition of semantic models</li>
<li>The relations between different semantic models</li>
<li>The relations between different approaches to meaning</li>
<li>The relation between computation and the underlying mathematical structures from fields such as <a href="Mathematical_logic" title="Mathematical logic">logic</a>, <a href="Set_theory" title="Set theory">set theory</a>, <a href="Model_theory" title="Model theory">model theory</a>, <a href="Category_theory" title="Category theory">category theory</a>, etc.</li></ul>
<p>It has close links with other areas of <a href="Computer_science" title="Computer science">computer science</a> such as <a href="Programming_language_design" class="mw-redirect" title="Programming language design">programming language design</a>, <a href="Type_theory" title="Type theory">type theory</a>, <a href="Compiler" title="Compiler">compilers</a> and <a href="Interpreter_(computing)" title="Interpreter (computing)">interpreters</a>, <a href="Program_verification" class="mw-redirect" title="Program verification">program verification</a> and <a href="Model_checking" title="Model checking">model checking</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Approaches">Approaches</h2></div>
<p>There are many approaches to formal semantics; these belong to three major classes:
</p>
<ul><li><b><a href="Denotational_semantics" title="Denotational semantics">Denotational semantics</a></b>,<sup id="cite_ref-Schmidt1986_6-0" class="reference"><a href="#cite_note-Schmidt1986-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> whereby each phrase in the language is interpreted as a <i><a href="Denotation_(semiotics)" title="Denotation (semiotics)">denotation</a></i>, i.e. a conceptual meaning that can be thought of abstractly. Such denotations are often mathematical objects inhabiting a mathematical space, but it is not a requirement that they should be so. As a practical necessity, denotations are described using some form of mathematical notation, which can in turn be formalized as a denotational metalanguage. For example, denotational semantics of <a href="Functional_programming_language" class="mw-redirect" title="Functional programming language">functional languages</a> often translate the language into <a href="Domain_theory" title="Domain theory">domain theory</a>. Denotational semantic descriptions can also serve as compositional translations from a programming language into the denotational metalanguage and used as a basis for designing <a href="Compiler" title="Compiler">compilers</a>.</li>
<li><b><a href="Operational_semantics" title="Operational semantics">Operational semantics</a></b>,<sup id="cite_ref-Plotkin1981_7-0" class="reference"><a href="#cite_note-Plotkin1981-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> whereby the execution of the language is described directly (rather than by translation). Operational semantics loosely corresponds to <a href="Interpreter_(computing)" title="Interpreter (computing)">interpretation</a>, although again the "implementation language" of the interpreter is generally a mathematical formalism. Operational semantics may define an <a href="Abstract_machine" title="Abstract machine">abstract machine</a> (such as the <a href="SECD_machine" title="SECD machine">SECD machine</a>), and give meaning to phrases by describing the transitions they induce on states of the machine. Alternatively, as with the pure <a href="Lambda_calculus" title="Lambda calculus">lambda calculus</a>, operational semantics can be defined via syntactic transformations on phrases of the language itself;</li>
<li><b><a href="Axiomatic_semantics" title="Axiomatic semantics">Axiomatic semantics</a></b>,<sup id="cite_ref-Goguen77_8-0" class="reference"><a href="#cite_note-Goguen77-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> whereby one gives meaning to phrases by describing the <i><a href="Axiom" title="Axiom">axioms</a></i> that apply to them. Axiomatic semantics makes no distinction between a phrase's meaning and the logical formulas that describe it; its meaning <i>is</i> exactly what can be proven about it in some logic. The canonical example of axiomatic semantics is <a href="Hoare_logic" title="Hoare logic">Hoare logic</a>.</li></ul>
<p>Apart from the choice between denotational, operational, or axiomatic approaches, most variations in formal semantic systems arise from the choice of supporting mathematical formalism.
</p>
<div class="mw-heading mw-heading2"><h2 id="Variations">Variations</h2></div>
<p>Some variations of formal semantics include the following:
</p>
<ul><li><b><a href="Action_semantics" title="Action semantics">Action semantics</a></b><sup id="cite_ref-Mosses1996_9-0" class="reference"><a href="#cite_note-Mosses1996-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> is an approach that tries to modularize denotational semantics, splitting the formalization process in two layers (macro and microsemantics) and predefining three semantic entities (actions, data and yielders) to simplify the specification;</li>
<li><b><a href="Algebraic_semantics_(computer_science)" title="Algebraic semantics (computer science)">Algebraic semantics</a></b><sup id="cite_ref-Goguen77_8-1" class="reference"><a href="#cite_note-Goguen77-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> is a form of <a href="Axiomatic_semantics" title="Axiomatic semantics">axiomatic semantics</a> based on <a href="Algebra" title="Algebra">algebraic</a> laws for describing and reasoning about <a href="Program_semantics" class="mw-redirect" title="Program semantics">program semantics</a> in a <a href="Formal_methods" title="Formal methods">formal</a> manner. It also supports <a href="Denotational_semantics" title="Denotational semantics">denotational semantics</a> and <a href="Operational_semantics" title="Operational semantics">operational semantics</a>;</li>
<li><b><a href="Attribute_grammar" title="Attribute grammar">Attribute grammars</a></b><sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> define systems that systematically compute "<a href="Metadata" title="Metadata">metadata</a>" (called <i>attributes</i>) for the various cases of <a href="Syntax_(programming_languages)" title="Syntax (programming languages)">the language's syntax</a>. Attribute grammars can be understood as a denotational semantics where the target language is simply the original language enriched with attribute annotations. Aside from formal semantics, attribute grammars have also been used for code generation in <a href="Compiler" title="Compiler">compilers</a>, and to augment <a href="Regular_languages" class="mw-redirect" title="Regular languages">regular</a> or <a href="Context-free_languages" class="mw-redirect" title="Context-free languages">context-free grammars</a> with <a href="Context-sensitive_languages" class="mw-redirect" title="Context-sensitive languages">context-sensitive</a> conditions;</li>
<li><b><a href="Categorical_semantics" class="mw-redirect" title="Categorical semantics">Categorical</a> (or "functorial") semantics</b><sup id="cite_ref-Lawvere1963_11-0" class="reference"><a href="#cite_note-Lawvere1963-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> uses <a href="Category_theory" title="Category theory">category theory</a> as the core mathematical formalism. Categorical semantics is usually proven to correspond to some axiomatic semantics that gives a syntactic presentation of the categorical structures. Also, denotational semantics are often instances of a general categorical semantics;<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup></li>
<li><b><a href="Concurrency_semantics" title="Concurrency semantics">Concurrency semantics</a></b><sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> is a catch-all term for any formal semantics that describes concurrent computations. Historically important concurrent formalisms have included the <a href="Actor_model" title="Actor model">actor model</a> and <a href="Process_calculi" class="mw-redirect" title="Process calculi">process calculi</a>;</li>
<li><b><a href="Game_semantics" title="Game semantics">Game semantics</a></b><sup id="cite_ref-Abramsky2009_14-0" class="reference"><a href="#cite_note-Abramsky2009-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> uses a metaphor inspired by <a href="Game_theory" title="Game theory">game theory</a>;</li>
<li><b><a href="Predicate_transformer_semantics" title="Predicate transformer semantics">Predicate transformer semantics</a></b>,<sup id="cite_ref-Dijkstra1975_15-0" class="reference"><a href="#cite_note-Dijkstra1975-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> developed by <a href="Edsger_W._Dijkstra" title="Edsger W. Dijkstra">Edsger W. Dijkstra</a>, describes the meaning of a program fragment as the function transforming a <a href="Postcondition" title="Postcondition">postcondition</a> to the <a href="Precondition" title="Precondition">precondition</a> needed to establish it.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Describing_relationships">Describing relationships</h2></div>
<p>For a variety of reasons, one might wish to describe the relationships between different formal semantics. For example:
</p>
<ul><li>To prove that a particular operational semantics for a language satisfies the logical formulas of an axiomatic semantics for that language. Such a proof demonstrates that it is "sound" to reason about a particular (operational) <i>interpretation strategy</i> using a particular (axiomatic) <i>proof system</i>.</li>
<li>To prove that operational semantics over a high-level machine is related by a <a href="Simulation" title="Simulation">simulation</a> with the semantics over a low-level machine, whereby the low-level abstract machine contains more primitive operations than the high-level abstract machine definition of a given language. Such a proof demonstrates that the low-level machine "faithfully implements" the high-level machine.</li></ul>
<p>It is also possible to relate multiple semantics through <a href="Abstraction_(computer_science)#Semantics" title="Abstraction (computer science)">abstractions</a> via the theory of <a href="Abstract_interpretation" title="Abstract interpretation">abstract interpretation</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Computational_semantics" title="Computational semantics">Computational semantics</a></li>
<li><a href="Formal_semantics_(logic)" class="mw-redirect" title="Formal semantics (logic)">Formal semantics (logic)</a></li>
<li><a href="Formal_semantics_(linguistics)" class="mw-redirect" title="Formal semantics (linguistics)">Formal semantics (linguistics)</a></li>
<li><a href="Ontology" title="Ontology">Ontology</a></li>
<li><a href="Ontology_(information_science)" title="Ontology (information science)">Ontology (information science)</a></li>
<li><a href="Semantic_equivalence" class="mw-redirect" title="Semantic equivalence">Semantic equivalence</a></li>
<li><a href="Semantic_technology" title="Semantic technology">Semantic technology</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFGoguen1975" class="citation book cs1"><a href="Joseph_Goguen" title="Joseph Goguen">Goguen, Joseph A.</a> (1975). "Semantics of computation". <i>Category Theory Applied to Computation and Control</i>. Lecture Notes in Computer Science. Vol. 25. <a href="Springer_Publishing" title="Springer Publishing">Springer</a>. pp. <span class="nowrap">151–</span>163. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F3-540-07142-3_75">10.1007/3-540-07142-3_75</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-3-540-07142-6</bdi>.</cite></span>
</li>
<li id="cite_note-floyd-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-floyd_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-floyd_2-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFFloyd1967" class="citation book cs1"><a href="Robert_W._Floyd" title="Robert W. Floyd">Floyd, Robert W.</a> (1967). <a rel="nofollow" class="external text" href="https://people.eecs.berkeley.edu/~necula/Papers/FloydMeaning.pdf">"Assigning Meanings to Programs"</a> <span class="cs1-format">(PDF)</span>. In Schwartz, J.T. (ed.). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=ynigSICJflYC"><i>Mathematical Aspects of Computer Science</i></a>. Proceedings of Symposium on Applied Mathematics. Vol. 19. American Mathematical Society. pp. <span class="nowrap">19–</span>32. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0821867288</bdi>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFKnuth" class="citation web cs1"><a href="Donald_Knuth" title="Donald Knuth">Knuth, Donald E.</a> <a rel="nofollow" class="external text" href="https://stacks.stanford.edu/file/druid:zy788sr3998/SC0193_MemorialResolution_Floyd_Robert.pdf">"Memorial Resolution: Robert W. Floyd (1936–2001)"</a> <span class="cs1-format">(PDF)</span>. <i>Stanford University Faculty Memorials</i>. Stanford Historical Society.</cite></span>
</li>
<li id="cite_note-hoare-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-hoare_4-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFHoare1969" class="citation journal cs1"><a href="Tony_Hoare" title="Tony Hoare">Hoare, C. A. R.</a> (October 1969). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F363235.363259">"An axiomatic basis for computer programming"</a>. <i><a href="Communications_of_the_ACM" title="Communications of the ACM">Communications of the ACM</a></i>. <b>12</b> (10): <span class="nowrap">576–</span>580. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F363235.363259">10.1145/363235.363259</a></span>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:207726175">207726175</a>.</cite></span>
</li>
<li id="cite_note-winskel-5"><span class="mw-cite-backlink">^ <a href="#cite_ref-winskel_5-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-winskel_5-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFWinskel1993" class="citation book cs1">Winskel, Glynn (1993). <a rel="nofollow" class="external text" href="https://archive.org/details/formalsemanticso0000wins"><i>The formal semantics of programming languages : an introduction</i></a>. Cambridge, Mass.: MIT Press. p. <a rel="nofollow" class="external text" href="https://archive.org/details/formalsemanticso0000wins/page/n17">xv</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-262-23169-5</bdi>.</cite></span>
</li>
<li id="cite_note-Schmidt1986-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-Schmidt1986_6-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFSchmidt1986" class="citation book cs1">Schmidt, David A. (1986). <i>Denotational Semantics: A Methodology for Language Development</i>. William C. Brown Publishers. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9780205104505</bdi>.</cite></span>
</li>
<li id="cite_note-Plotkin1981-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-Plotkin1981_7-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFPlotkin1981" class="citation report cs1"><a href="Gordon_Plotkin" title="Gordon Plotkin">Plotkin, Gordon D.</a> (1981). A structural approach to operational semantics (Report). Technical Report DAIMI FN-19. Computer Science Department, <a href="Aarhus_University" title="Aarhus University">Aarhus University</a>.</cite></span>
</li>
<li id="cite_note-Goguen77-8"><span class="mw-cite-backlink">^ <a href="#cite_ref-Goguen77_8-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Goguen77_8-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFGoguenThatcherWagnerWright1977" class="citation journal cs1"><a href="Joseph_Goguen" title="Joseph Goguen">Goguen, Joseph A.</a>; Thatcher, James W.; Wagner, Eric G.; Wright, Jesse B. (1977). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F321992.321997">"Initial algebra semantics and continuous algebras"</a>. <i><a href="Journal_of_the_ACM" title="Journal of the ACM">Journal of the ACM</a></i>. <b>24</b> (1): <span class="nowrap">68–</span>95. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F321992.321997">10.1145/321992.321997</a></span>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:11060837">11060837</a>.</cite></span>
</li>
<li id="cite_note-Mosses1996-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-Mosses1996_9-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFMosses1996" class="citation report cs1"><a href="Peter_Mosses" title="Peter Mosses">Mosses, Peter D.</a> (1996). Theory and practice of action semantics (Report). BRICS Report RS9653. <a href="Aarhus_University" title="Aarhus University">Aarhus University</a>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite id="CITEREFDeransartJourdanLorho1988" class="citation book cs1">Deransart, Pierre; Jourdan, Martin; Lorho, Bernard (1988). <i>"Attribute Grammars: Definitions, Systems and Bibliography</i>. Lecture Notes in Computer Science 323. <a href="Springer-Verlag" class="mw-redirect" title="Springer-Verlag">Springer-Verlag</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9780387500560</bdi>.</cite></span>
</li>
<li id="cite_note-Lawvere1963-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-Lawvere1963_11-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFLawvere1963" class="citation journal cs1"><a href="William_Lawvere" title="William Lawvere">Lawvere, F. William</a> (1963). <a rel="nofollow" class="external text" href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC221940">"Functorial semantics of algebraic theories"</a>. <i><a href="Proceedings_of_the_National_Academy_of_Sciences_of_the_United_States_of_America" title="Proceedings of the National Academy of Sciences of the United States of America">Proceedings of the National Academy of Sciences of the United States of America</a></i>. <b>50</b> (5): <span class="nowrap">869–</span>872. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/1963PNAS...50..869L">1963PNAS...50..869L</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1073%2Fpnas.50.5.869">10.1073/pnas.50.5.869</a></span>. <a href="PMC_(identifier)" class="mw-redirect" title="PMC (identifier)">PMC</a> <span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC221940">221940</a></span>. <a href="PMID_(identifier)" class="mw-redirect" title="PMID (identifier)">PMID</a> <a rel="nofollow" class="external text" href="https://pubmed.ncbi.nlm.nih.gov/16591125">16591125</a>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite id="CITEREFAndrzej_TarleckiRod_M._BurstallJoseph_A._Goguen1991" class="citation journal cs1">Andrzej Tarlecki; <a href="Rod_Burstall" title="Rod Burstall">Rod M. Burstall</a>; <a href="Joseph_Goguen" title="Joseph Goguen">Joseph A. Goguen</a> (1991). <a rel="nofollow" class="external text" href="https://doi.org/10.1016%2F0304-3975%2891%2990085-G">"Some fundamental algebraic tools for the semantics of computation: Part 3. Indexed categories"</a>. <i><a href="Theoretical_Computer_Science" class="mw-redirect" title="Theoretical Computer Science">Theoretical Computer Science</a></i>. <b>91</b> (2): <span class="nowrap">239–</span>264. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1016%2F0304-3975%2891%2990085-G">10.1016/0304-3975(91)90085-G</a></span>.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite id="CITEREFBattyMemarianNienhuisPichon-Pharabod2015" class="citation conference cs1">Batty, Mark; Memarian, Kayvan; Nienhuis, Kyndylan; Pichon-Pharabod, Jean; Sewell, Peter (2015). <a rel="nofollow" class="external text" href="http://kar.kent.ac.uk/50271/1/c_concurrency_challenges.pdf">"The problem of programming language concurrency semantics"</a> <span class="cs1-format">(PDF)</span>. <i>Proceedings of the European Symposium on Programming Languages and Systems</i>. <a href="Springer_Publishing" title="Springer Publishing">Springer</a>. pp. <span class="nowrap">283–</span>307. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-3-662-46669-8_12">10.1007/978-3-662-46669-8_12</a></span>.</cite></span>
</li>
<li id="cite_note-Abramsky2009-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-Abramsky2009_14-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFAbramsky2009" class="citation book cs1"><a href="Samson_Abramsky" title="Samson Abramsky">Abramsky, Samson</a> (2009). "Semantics of interaction: An introduction to game semantics". In Andrew M. Pitts; P. Dybjer (eds.). <a rel="nofollow" class="external text" href="https://ora.ox.ac.uk/objects/uuid:ab3ece5b-cd8d-49e6-ba33-010ea4c1a1ac"><i>Semantics and Logics of Computation</i></a>. Cambridge University Press. pp. <span class="nowrap">1–</span>32. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1017%2FCBO9780511526619.002">10.1017/CBO9780511526619.002</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>9780521580571</bdi>.</cite></span>
</li>
<li id="cite_note-Dijkstra1975-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-Dijkstra1975_15-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFDijkstra1975" class="citation journal cs1"><a href="Edsger_W._Dijkstra" title="Edsger W. Dijkstra">Dijkstra, Edsger W.</a> (1975). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F360933.360975">"Guarded commands, nondeterminacy and formal derivation of programs"</a>. <i><a href="Communications_of_the_ACM" title="Communications of the ACM">Communications of the ACM</a></i>. <b>18</b> (8): <span class="nowrap">453–</span>457. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F360933.360975">10.1145/360933.360975</a></span>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a> <a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:1679242">1679242</a>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<dl><dt>Textbooks</dt></dl>
<style data-mw-deduplicate="TemplateStyles:r1239549316">
/* start https://en.wikipedia.org/ */
.mw-parser-output .refbegin{margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}@media screen{.mw-parser-output .refbegin{font-size:90%}}
/* end https://en.wikipedia.org/ */
</style><div class="refbegin" style="">
<ul><li><cite id="CITEREFFloyd1967" class="citation book cs1"><a href="Robert_W._Floyd" title="Robert W. Floyd">Floyd, Robert W.</a> (1967). <a rel="nofollow" class="external text" href="https://www.cs.tau.ac.il/~nachumd/term/FloydMeaning.pdf">"Assigning Meanings to Programs"</a> <span class="cs1-format">(PDF)</span>. In Schwartz, J.T. (ed.). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=ynigSICJflYC"><i>Mathematical Aspects of Computer Science</i></a>. Proceedings of Symposium on Applied Mathematics. Vol. 19. American Mathematical Society. pp. <span class="nowrap">19–</span>32. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0821867288</bdi>.</cite></li>
<li><cite id="CITEREFHennessy1990" class="citation book cs1"><a href="Matthew_Hennessy" title="Matthew Hennessy">Hennessy, M.</a> (1990). <i>The semantics of programming languages: an elementary introduction using structural operational semantics</i>. Wiley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-471-92772-3</bdi>.</cite></li>
<li><cite id="CITEREFTennent1991" class="citation book cs1">Tennent, Robert D. (1991). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=K7N7QgAACAAJ"><i>Semantics of Programming Languages</i></a>. Prentice Hall. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-13-805599-8</bdi>.</cite></li>
<li><cite id="CITEREFGunter1992" class="citation book cs1">Gunter, Carl (1992). <i>Semantics of Programming Languages</i>. MIT Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-262-07143-6</bdi>.</cite></li>
<li><cite id="CITEREFNielsonNielson1992" class="citation book cs1">Nielson, H. R.; Nielson, Flemming (1992). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120417112149/http://www.daimi.au.dk/~bra8130/Wiley_book/wiley.pdf"><i>Semantics With Applications: A Formal Introduction</i></a> <span class="cs1-format">(PDF)</span>. Wiley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-471-92980-2</bdi>. Archived from <a rel="nofollow" class="external text" href="http://www.daimi.au.dk/~bra8130/Wiley_book/wiley.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2012-04-17<span class="reference-accessdate">. Retrieved <span class="nowrap">2011-05-27</span></span>.</cite></li>
<li><cite id="CITEREFWinskel1993" class="citation book cs1">Winskel, Glynn (1993). <i>The Formal Semantics of Programming Languages: An Introduction</i>. MIT Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-262-73103-7</bdi>.</cite></li>
<li><cite id="CITEREFMitchell1995" class="citation book cs1"><a href="John_C._Mitchell" title="John C. Mitchell">Mitchell, John C.</a> (1995). <a rel="nofollow" class="external text" href="http://www.lix.polytechnique.fr/~catuscia/teaching/cg520/papers_and_books/Mitchell_book.ps.gz"><i>Foundations for Programming Languages</i></a> <span class="cs1-format">(Postscript)</span>.</cite></li>
<li><cite id="CITEREFSlonnegerKurtz1995" class="citation book cs1">Slonneger, Kenneth; Kurtz, Barry L. (1995). <a rel="nofollow" class="external text" href="http://www.cs.uiowa.edu/~slonnegr/plf/Book/"><i>Formal Syntax and Semantics of Programming Languages</i></a>. Addison-Wesley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-201-65697-3</bdi>.</cite></li>
<li><cite id="CITEREFReynolds1998" class="citation book cs1"><a href="John_C._Reynolds" title="John C. Reynolds">Reynolds, John C.</a> (1998). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/theoriesofprogra0000reyn"><i>Theories of Programming Languages</i></a></span>. Cambridge University Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-521-59414-6</bdi>.</cite></li>
<li><cite id="CITEREFHarper2006" class="citation book cs1"><a href="Robert_Harper_(computer_scientist)" title="Robert Harper (computer scientist)">Harper, Robert</a> (2006). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20070627041059/https://www.cs.cmu.edu/~rwh/plbook/book.pdf"><i>Practical Foundations for Programming Languages</i></a> <span class="cs1-format">(PDF)</span>. Archived from <a rel="nofollow" class="external text" href="https://www.cs.cmu.edu/~rwh/plbook/book.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2007-06-27.</cite> (Working draft)</li>
<li><cite id="CITEREFNielsonNielson2007" class="citation book cs1">Nielson, H. R.; Nielson, Flemming (2007). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=oPi0yERDUeYC"><i>Semantics with Applications: An Appetizer</i></a>. Springer. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1-84628-692-6</bdi>.</cite></li>
<li><cite id="CITEREFStump2014" class="citation book cs1">Stump, Aaron (2014). <i>Programming Language Foundations</i>. Wiley. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1-118-00747-1</bdi>.</cite></li>
<li><cite id="CITEREFKrishnamurthi2012" class="citation web cs1"><a href="Shriram_Krishnamurthi" title="Shriram Krishnamurthi">Krishnamurthi, Shriram</a> (2012). <a rel="nofollow" class="external text" href="http://cs.brown.edu/courses/cs173/2012/book/">"Programming Languages: Application and Interpretation"</a> (2nd ed.).</cite></li></ul>
<dl><dt>Lecture notes</dt></dl>
<ul><li><cite id="CITEREFWinskel" class="citation web cs1">Winskel, Glynn. <a rel="nofollow" class="external text" href="http://www.cl.cam.ac.uk/~gw104/dens.pdf">"Denotational Semantics"</a> <span class="cs1-format">(PDF)</span>. University of Cambridge.</cite></li></ul>
</div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><cite id="CITEREFAaby2004" class="citation book cs1">Aaby, Anthony (2004). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20150619164601/http://www.emu.edu.tr/aelci/Courses/D-318/D-318-Files/plbook/semantic.htm"><i>Introduction to Programming Languages</i></a>. Archived from <a rel="nofollow" class="external text" href="http://www.emu.edu.tr/aelci/Courses/D-318/D-318-Files/plbook/semantic.htm">the original</a> on 2015-06-19.</cite> Semantics.</li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-05-10" href="https://en.wikipedia.org/wiki/?title=Semantics_(computer_science)&oldid=1289674427">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>